package com.htudata.live.pojo.vo;

import lombok.Data;
import java.io.Serializable;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;

@Data
public class NodeVO implements Serializable {
  private static final long serialVersionUID = -8878557702581710528L;
  
  private String nodeId;
  
  private int nodeTypeId;
  
  private int stationTypeId;
  
  private String stationName;
  
  private String parentNodeId;
  
  private int[] xy;
  
  private String nodeName;
  
  private String nickName;
  
  private String areaCode;
  
  private String ip;
  
  private int port;
  
  private Long zbxHostId;
  
  private String city;
  
  private String descpt;
  
  private String prov;
  
  private String provCode;

  private int isItemShowed = 0;

  private List<NodeVO> children = new ArrayList<>();

  private List<AlarmStatisVO> alarms = new ArrayList<>();

  private List<ItemStatisVO> statis = new ArrayList<>();


  public boolean equals(Object o) {
    if (o == this)
      return true; 
    if (!(o instanceof NodeVO))
      return false; 
    NodeVO other = (NodeVO)o;
    if (!other.canEqual(this))
      return false; 
    Object this$nodeId = getNodeId(), other$nodeId = other.getNodeId();
    if ((this$nodeId == null) ? (other$nodeId != null) : !this$nodeId.equals(other$nodeId))
      return false; 
    if (getNodeTypeId() != other.getNodeTypeId())
      return false; 
    if (getStationTypeId() != other.getStationTypeId())
      return false; 
    Object this$stationName = getStationName(), other$stationName = other.getStationName();
    if ((this$stationName == null) ? (other$stationName != null) : !this$stationName.equals(other$stationName))
      return false; 
    Object this$parentNodeId = getParentNodeId(), other$parentNodeId = other.getParentNodeId();
    if ((this$parentNodeId == null) ? (other$parentNodeId != null) : !this$parentNodeId.equals(other$parentNodeId))
      return false; 
    if (!Arrays.equals(getXy(), other.getXy()))
      return false; 
    Object this$nodeName = getNodeName(), other$nodeName = other.getNodeName();
    if ((this$nodeName == null) ? (other$nodeName != null) : !this$nodeName.equals(other$nodeName))
      return false; 
    Object this$nickName = getNickName(), other$nickName = other.getNickName();
    if ((this$nickName == null) ? (other$nickName != null) : !this$nickName.equals(other$nickName))
      return false; 
    Object this$areaCode = getAreaCode(), other$areaCode = other.getAreaCode();
    if ((this$areaCode == null) ? (other$areaCode != null) : !this$areaCode.equals(other$areaCode))
      return false; 
    Object this$ip = getIp(), other$ip = other.getIp();
    if ((this$ip == null) ? (other$ip != null) : !this$ip.equals(other$ip))
      return false; 
    if (getPort() != other.getPort())
      return false; 
    Object this$zbxHostId = getZbxHostId(), other$zbxHostId = other.getZbxHostId();
    if ((this$zbxHostId == null) ? (other$zbxHostId != null) : !this$zbxHostId.equals(other$zbxHostId))
      return false; 
    Object this$city = getCity(), other$city = other.getCity();
    if ((this$city == null) ? (other$city != null) : !this$city.equals(other$city))
      return false; 
    Object this$descpt = getDescpt(), other$descpt = other.getDescpt();
    if ((this$descpt == null) ? (other$descpt != null) : !this$descpt.equals(other$descpt))
      return false; 
    Object this$prov = getProv(), other$prov = other.getProv();
    if ((this$prov == null) ? (other$prov != null) : !this$prov.equals(other$prov))
      return false; 
    Object this$provCode = getProvCode(), other$provCode = other.getProvCode();
    if ((this$provCode == null) ? (other$provCode != null) : !this$provCode.equals(other$provCode))
      return false; 
    if (getIsItemShowed() != other.getIsItemShowed())
      return false; 
    Object this$children = getChildren(), other$children =other.getChildren();
    if ((this$children == null) ? (other$children != null) : !this$children.equals(other$children))
      return false; 
    Object this$alarms = getAlarms(), other$alarms = other.getAlarms();
    if ((this$alarms == null) ? (other$alarms != null) : !this$alarms.equals(other$alarms))
      return false; 
    Object this$statis = getStatis(), other$statis =other.getStatis();
    return !((this$statis == null) ? (other$statis != null) : !this$statis.equals(other$statis));
  }
  
  protected boolean canEqual(Object other) {
    return other instanceof NodeVO;
  }



  public NodeVO(String nodeId, int nodeTypeId, int[] xy, String nodeName, String ip, int port, List<NodeVO> children) {
    this.nodeId = nodeId;
    this.nodeTypeId = nodeTypeId;
    this.xy = xy;
    this.nodeName = nodeName;
    this.ip = ip;
    this.port = port;
    this.children = children;
  }
  
  public NodeVO(String nodeId, int nodeTypeId, int[] xy, String nodeName, String ip, int port) {
    this.nodeId = nodeId;
    this.nodeTypeId = nodeTypeId;
    this.xy = xy;
    this.nodeName = nodeName;
    this.ip = ip;
    this.port = port;
  }
  
  public NodeVO() {}
}
